﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevComponents.DotNetBar;

namespace GUI
{
    using DevExpress.XtraGrid;
    using DevExpress.XtraGrid.Views.Layout;
    using DevExpress.XtraGrid.Columns;
    using DevExpress.XtraLayout;
    using DevExpress.XtraLayout.Customization;
    using DevExpress.XtraLayout.Utils;
    using DevExpress.XtraEditors.Repository;
    using DevExpress.XtraEditors.Controls;

    using GUI.Library;
    using WS.DAL.Entities;

    public partial class FrmFullInfo : Office2007Form
    {
        public FrmFullInfo()
        {
            InitializeComponent();

            //load hình Sub cho sản phẩm
            gcHinhSub.DataSource = null;
            palHinhSub.Controls.Clear();
            palHinhSub.Controls.Add(gcHinhSub);
            gcHinhSub.Dock = DockStyle.Fill;
            lvDS = new LayoutView(gcHinhSub);
            gcHinhSub.MainView = lvDS;
            lvDS.OptionsView.ViewMode = LayoutViewMode.Carousel;
            LayoutViewColumn colMota = lvDS.Columns.AddField("Mota");
            LayoutViewColumn colHinh = lvDS.Columns.AddField("Hinh");

            LayoutViewField fieldMa = colMota.LayoutViewField;
            LayoutViewField fieldTen = colHinh.LayoutViewField;

            colHinh.Visible = true;

            RepositoryItemPictureEdit riPictureEdit = gcHinhSub.RepositoryItems.Add("PictureEdit") as RepositoryItemPictureEdit;
            riPictureEdit.SizeMode = PictureSizeMode.Squeeze;
            colHinh.ColumnEdit = riPictureEdit;
        }

        GridControl gcHinhSub = new GridControl();
        LayoutView lvDS;
        DataTable SP;

        SV.Bussiness _bllBus = new SV.Bussiness();
        private void FrmFullInfo_Load(object sender, EventArgs e)
        {
            SP = _bllBus.Sanpham_Tim_Ten(FrmMainGuest.SeeFullInfoSanpham_Id);
            if (SP.Rows.Count > 0)
            {
                lblMa.Text = SP.Rows[0]["Ma"].ToString();
                lblTen.Text = SP.Rows[0]["Ten"].ToString();
                lblLoaihang.Text = SP.Rows[0]["Loaihang"].ToString();
                lblNXS.Text = SP.Rows[0]["NSX"].ToString();
                lblGiaban.Text = SP.Rows[0]["Giaban"].ToString()+ "VNĐ";
                lblSoluong.Text = SP.Rows[0]["Soluong"].ToString();
                gcHinhSub.DataSource= _bllBus.HinhSub_Select_Sanpham_Id(SP.Rows[0]["Id"].GetGuid());
            }
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void nbrSoluong_Mua_ValueChanged(object sender, EventArgs e)
        {
            lblThanhtien.Text= "Thành tiền: "+(SP.Rows[0]["Giaban"].ToInt32() * nbrSoluong_Mua.Value.ToInt32()).ToVietnamese("đồng.");
        }

        private void btnDatmua_Click(object sender, EventArgs e)
        {
            if (FrmMainGuest.Khachhang_Id == Guid.Empty) { XtraMessageBox.Show("Bạn cần đăng nhập để sử dụng chức năng đặt hàng\nNếu chưa có tài khoản bạn có thể đăng ký mới.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); }
            if (nbrSoluong_Mua.Value == 0) { XtraMessageBox.Show("Chưa chọn số lượng muốn mua", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
            if (nbrSoluong_Mua.Value > SP.Rows[0]["Soluong"].ToInt32()) { XtraMessageBox.Show("Hiện tại số lượng sản phẩm này chỉ còn "+ SP.Rows[0]["Soluong"].ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
            if (_bllBus.Dathang_Ma_NewOld(FrmMainGuest.Khachhang_Id))
            {
                //insert
                Guid tempId = Guid.NewGuid();
                Dathang o = new Dathang();
                o.Id = tempId;
                o.Ma = _bllBus.Dathang_Layma(FrmMainGuest.Khachhang_Id);
                o.Khachhang_Id = FrmMainGuest.Khachhang_Id;
                o.Ngay = DateTime.Today;
                _bllBus.Dathang_Insert(o);

                Chitiet ct = new Chitiet();
                ct.Id = Guid.NewGuid();
                ct.Ma = _bllBus.Chitiet_Layma();
                ct.Dathang_Id = tempId;
                ct.Sanpham_Id = SP.Rows[0]["Id"].GetGuid();
                ct.Soluong = nbrSoluong_Mua.Value.ToInt32();
                ct.Tinhtrang = false;
                _bllBus.Chitiet_Insert(ct);

                XtraMessageBox.Show("Bạn đã đặt hàng thành công, có thể xem lại thông tin trong giỏ hàng","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
                this.Close();
            }
            else
            {
                //update
                Chitiet ct = new Chitiet();
                ct.Id = Guid.NewGuid();
                ct.Ma = _bllBus.Chitiet_Layma();
                DataTable b = _bllBus.Dathang_Lay_Donhangmoinhat(FrmMainGuest.Khachhang_Id);
                ct.Dathang_Id = b.Rows[0]["Id"].GetGuid();
                    
                ct.Sanpham_Id = SP.Rows[0]["Id"].GetGuid();
                ct.Soluong = nbrSoluong_Mua.Value.ToInt32();
                ct.Tinhtrang = false;
                _bllBus.Chitiet_Insert(ct);

                XtraMessageBox.Show("Bạn đã đặt hàng thành công, có thể xem lại thông tin trong giỏ hàng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }

        }
    }
}